package everyday;


import java.util.List;

/**
 * 存在一个按升序排列的链表，给你这个链表的头节点 head ，
 * 请你删除链表中所有存在数字重复情况的节点，只保留原始链表中 没有重复出现 的数字
 * @author le
 */
public class Day03
{

    public ListNode deleteDuplicates(ListNode head) {

        // 设立一个头节点
        ListNode pre  = new ListNode();
        pre.next = head;
        ListNode curr = pre;

        // 判断条件是 有且有两个结点均有值
        while(curr.next != null && curr.next.next != null){
            // 如果下个节点的值 等于 下下个节点的值
            if (curr.next.val == curr.next.next.val){
                // 用 x 存储重复的元素的值
                int x = curr.next.val;
                // 如果 下个结点不为空 且  下个结点的值 等于 x
                while(curr.next != null && curr.next.val == x){
                    // 删除结点 指针后移
                    curr.next = curr.next.next;
                }
            }else{
                // 不等于的时候 也要后移
                curr = curr.next;
            }

        }
        return pre.next;

    }
}


